package com.huawei.M01.iterator.july;

import java.util.Stack;

/**
 * 功能：
 *
 * @author zhiwu
 * @Data 2023/7/11 0:24
 */
public class Caculate {
    public int evalRPN(String[] tokens) {
        // 使用栈进行处理
        Stack<Integer> stack = new Stack<>();
        for (String token : tokens) {
            if (token.equals("+") || token.equals("-") || token.equals("*") || token.equals("/")) {
                int y = stack.pop();
                int x = stack.pop();
                stack.push(getResult(x, y, token));
            } else {
                stack.push(Integer.parseInt(token));
            }
        }
        return stack.peek();

    }

    private int getResult(int x, int y, String token) {
        if (token.equals("+")) {
            return x + y;
        }
        if (token.equals("-")) {
            return x - y;
        }
        if (token.equals("*")) {
            return x * y;
        }
        if (token.equals("/")) {
            return x / y;
        }

        return 0;
    }
}
